package com.dingding.manager.core.shiro.factory;

import java.util.List;

import org.apache.shiro.authc.SimpleAuthenticationInfo;

import com.dingding.manager.common.beans.sys.Organization;
import com.dingding.manager.common.beans.sys.SysUser;
import com.dingding.manager.core.shiro.ShiroUser;

/**
 * @Description 定义shirorealm所需数据的接口
 * @author fengshuonan
 * @date 2016年12月5日 上午10:23:34
 */
public interface IShiro {
	
	/**
	 * @Description 根据账号获取登录用户
	 * @param account 账号
	 * @author fengshuonan
	 */
	public SysUser user(String account);

	/**
	 * @Description 根据系统用户获取Shiro的用户
	 * @param user 系统用户
	 * @author fengshuonan
	 */
	public ShiroUser shiroUser(SysUser user);

	/**
	 * @Description 获取权限列表通过角色id
	 * @param roleId 角色id
	 * @author fengshuonan
	 */
	public List<String> findPermissionsByRoleId(Integer roleId);

	/**
	 * @Description 根据角色id获取角色名称
	 * @param roleId 角色id
	 * @author fengshuonan
	 */
	public String findRoleNameByRoleId(Integer roleId);
	
	/**
	 * @Description 获取shiro的认证信息
	 * @author fengshuonan
	 */
	public SimpleAuthenticationInfo info(ShiroUser shiroUser, SysUser user, String realmName);
	
	
	/**
	 * @Description: 获取用户所能访问的公司集合
	 * @date 2016年12月27日 下午4:26:24
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public List<Organization> getOrganizationList();
	

}
